assume cs:code,ds:data,ss:stack

data segment
    db 'welcome to masm!'
    db 02h,24h,71h
data ends

stack segment
    dw 8 dup(0)
stack ends

code segment
start: mov ax,data
        mov ds,ax
        mov ax,stack
        mov ss,ax
        mov sp,16

        xor bx,bx ;bx清零
        mov ax,0b872h

        mov cx,3
    s3: push cx
        push ax
        push bx

        mov es,ax

        mov si,0
        mov di,0

        mov cx,16

    s1: mov al,ds:[si]
        mov es:[di],al
        inc si
        add di,2

        loop s1

        mov di,1
        pop bx
        mov al,ds:[bx+16]
        inc bx

        mov cx,16
    s2: mov es:[di],al
        add di,2
        loop s2

        pop ax
        add ax,0ah
        pop cx
        loop s3

        mov ax,4c00h
        int 21h

code ends

end start